/**
|--------------------------------------------------
| 给你二叉树的根节点 root ，返回其节点值 自底向上的层序遍历 。 
（即按从叶子节点所在层到根节点所在的层，逐层从左向右遍历）

输入：root = [3,9,20,null,null,15,7]
输出：[[15,7],[9,20],[3]]
输入：root = [1]
输出：[[1]]
输入：root = []
输出：[]
提示：

    树中节点数目在范围 [0, 2000] 内
    -1000 <= Node.val <= 1000

|--------------------------------------------------
*/
var levelOrderBottom = function (root) {
  if (!root) return [];
  const q = [root];
  const res = [];
  while (q.length) {
    const len = q.length;
    res.push([]);
    while (len--) {
      const n = q.shift();
      res[res.length - 1].push(n);
      if (n.left) q.push(n.left);
      if (n.right) q.push(n.right);
    }
  }
  return res.reverse();
};
